import {doGet, appJsonPost, formPost, doDelete} from '@/network/request';

// 获取 CSRF Token
function getCsrfToken() {
    const name = 'XSRF-TOKEN=';
    const decodedCookie = decodeURIComponent(document.cookie);
    const cookies = decodedCookie.split(';');
    for (let i = 0; i < cookies.length; i++) {
        const cookie = cookies[i].trim();
        if (cookie.indexOf(name) === 0) {
            return cookie.substring(name.length, cookie.length);
        }
    }
    return '';
}

/**
 * 登录
 * @param data
 */
export function loginApi(data: object) {
    return formPost({
        url: '/user/login',
        data
    });
}

/**
 * 注销
 * @param data
 */
export function logoutApi() {
    return appJsonPost({ // 使用 POST 方法
        url: '/user/logout',
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

/**
 * 修改密码
 */
export function modifyPwdApi(data: object) {
    return appJsonPost({
        url: "/user/updatePwd",
        data: data,
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

/**
 * 添加用户
 */
export function addApi(data: object) {
    return appJsonPost({
        url: "/user/add",
        data: data,
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

/**
 * 注册用户
 */
export function registerApi(data: object) {
    return appJsonPost({
        url: "/user/register",
        data: data,
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

/**
 * 查询用户表格
 */
export function loadTableApi(searchData: object) {
    return appJsonPost({
        url: "/user/queryPage",
        data: searchData,
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

/**
 * 通过id删除用户
 * @param id
 * @returns
 */
export function deleteByIdApi(id: string) {
    return doDelete({
        url: "/user/deleteById",
        params: { id },
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

/**
 * 通过id进行查询
 */
export function queryByIdApi(id: string) {
    return doGet({
        url: "/user/queryById",
        params: { id },
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

/**
 * 通过id进行修改
 */
export function modifyByIdApi(data: object) {
    return appJsonPost({
        url: "/user/modifyById",
        data: data,
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

/**
 * 给用户分配角色
 */
export function assignRoleApi(data: object) {
    return appJsonPost({
        url: "/user/assignRole",
        data,
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}
export function updateUserApi(data: object) {
    return appJsonPost({
        url: "/user/update",
        data,
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}

export function getRolebyUser(id) {
    return appJsonPost({
        url: `/user/getRolebyUser/${id}`,  // 使用动态参数
        headers: {
            'X-XSRF-TOKEN': getCsrfToken() // 添加 CSRF Token
        }
    });
}


